gpointer user_data)
{
GtkWidget *widget = user_data;
+ GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GtkStyleContext *context;
GdkRectangle bg_rect;
bg_rect.width, bg_rect.height);
gtk_style_context_restore (context);
+ if (GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer != NULL)
+ GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (widget, GTK_TEXT_VIEW_LAYER_BELOW, cr);
+
gtk_text_view_paint (widget, cr);
+
+ if (GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer != NULL)
+ GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (widget, GTK_TEXT_VIEW_LAYER_ABOVE, cr);
}
static void
GTK_TEXT_WINDOW_BOTTOM
} GtkTextWindowType;
+/**
+ * GtkTextViewLayer:
+ * @GTK_TEXT_VIEW_LAYER_BELOW: The layer rendered below the text (but above the background).
+ * @GTK_TEXT_VIEW_LAYER_ABOVE: The layer rendered above the text.
+ *
+ * Used to reference the parts of #GtkTextView.
+ */
+typedef enum
+{
+ GTK_TEXT_VIEW_LAYER_BELOW,
+ GTK_TEXT_VIEW_LAYER_ABOVE
+} GtkTextViewLayer;
+
/**
* GTK_TEXT_VIEW_PRIORITY_VALIDATE:
*
GtkTextViewPrivate *priv;
};
+/**
+ * GtkTextViewClass:
+ * @parent_class: The object class structure needs to be the first
+ * @draw_layer: Draw layers below and above the text in the text window.
+ */
struct _GtkTextViewClass
{
GtkContainerClass parent_class;
GtkTextBuffer * (* create_buffer) (GtkTextView *text_view);
+ void (* draw_layer) (GtkWidget *widget,
+ GtkTextViewLayer layer,
+ cairo_t *cr);
+
/* Padding for future expansion */
void (*_gtk_reserved1) (void);
void (*_gtk_reserved2) (void);
void (*_gtk_reserved4) (void);
void (*_gtk_reserved5) (void);
void (*_gtk_reserved6) (void);
- void (*_gtk_reserved7) (void);
};
GDK_AVAILABLE_IN_ALL